Directory structure:
The software is arranged in the following hierarchy with some naming conventions

monte_carlo_wsnm_<widthT>_<widthG>
	|
	\_ mc_0.7
	|    |
	|    \_ monte_carlo_wsnm_0.7v
	|		|
	|		\_ monte_carlo_dat.txt
	|		|
	|		\_ input.ocn 
	|		|
	|		\_ netlist
	|		|
	|		\_ test.sh
	|		|
	|		\_ aggregate_output.txt
	|
	|
	\_mc_0.V ( multiple directories for different voltages, all following "mc_0.7" hierarchy)
	|
	|
	\_ monte_carlo_dat.txt
	|
	\_ modify.sh
	|
	\_ check.sh

The above directory hierarchy shows the breakup of monte carlo WSNM analysis for bitcell transistors with width "widthT" and pass gate transistors with width "widthG".
For this analysis only the width was changed as a part of size scaling, hence this naming convention.

monte_carlo_dat.txt : Contains the 6 tuple combination of noise voltage points which together with fixed "Vth", forms the variation of "Vth" across sizing.
This file is generated from an "R" Program, which generates these points based on a statistical modelling of "Vth" variations on changing width and length.

input.ocn : This is the main ocean script file which calculates the WSNM based on inputs from "monte_carlo_dat.txt" and "netlist". The code is heavily commented out for
clear understanding of the circuit and test case simulation

netlist : This contains the bitcell definitions. Additionally, the values of width and length for the transistors are used for simulation. These must be
changed when simulation is done with different size.

test.sh : This is the main script which invokes input.ocn based on the number of runs as determined by the number of rows in monte_carlo_dat.txt file. The output for all runs
is saved in a file called aggregate_output.txt. Finally this "aggregate_output.txt" is analysed with R and the values of SNM determined.

modify.sh, and check.sh are helper scripts which are self-explanatory.

